home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 November / PCWorld_2006-11_cd.bin / system / innosetup / isetup-5.1.8.exe / {app} / Examples / UninstallCodeDll.iss < prev    next >
Text File  |  2006-10-03  |  1KB  |  37 lines

  1. ; -- UninstallCodeDll.iss --
  2. ;
  3. ; This script shows how to call DLL functions at uninstall time from a [Code] section.
  4.  
  5. [Setup]
  6. AppName=My Program
  7. AppVerName=My Program version 1.5
  8. DefaultDirName={pf}\My Program
  9. DisableProgramGroupPage=yes
  10. UninstallDisplayIcon={app}\MyProg.exe
  11. OutputDir=userdocs:Inno Setup Examples Output
  12.  
  13. [Files]
  14. ; Install our DLL to {app} so we can access it at uninstall time
  15. Source: "MyDll.dll"; DestDir: "{app}"
  16.  
  17. [Code]
  18. const
  19.   MB_ICONINFORMATION = $40;
  20.  
  21. // Importing our custom DLL function
  22. procedure MyDllFunc(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal);
  23. external 'MyDllFunc@{app}\MyDll.dll stdcall uninstallonly';
  24.  
  25. procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
  26. begin
  27.   // Call our function just before the actual uninstall process begins
  28.   if CurUninstallStep = usUninstall then
  29.   begin
  30.     MyDllFunc(0, 'Hello from custom DLL function', 'MyDllFunc', MB_OK or MB_ICONINFORMATION);
  31.     
  32.     // Now that we're finished with it, unload MyDll.dll from memory.
  33.     // We have to do this so that the uninstaller will be able to remove the DLL and the {app} directory.
  34.     UnloadDLL(ExpandConstant('{app}\MyDll.dll'));
  35.   end;
  36. end;
  37.